An Overview of Compiler Techniques for Interprocedural Array Section Analysis
نویسنده
چکیده
Dependence analysis of arrays is crucial in the compilation of parallel applications, as an inaccurate summary of array usage may reduce the potential for optimizations. Standard scalar techniques are inadequate for they do not accommodate speci c accesses to arrays. Array section analysis describes accesses to arrays at a ner granularity than the scalar techniques. More precisely, array section analysis techniques summarize a collection of accesses to a speci c array in a procedure. In this paper, we present a summary of existing array section analysis techniques for interprocedural dependence analysis. We identify and compare two classes of such techniques and give suggestions for improving the techniques.
منابع مشابه
An Interprocedural Parallelizing Compiler and Its Support for Memory Hierarchy Research
We present several new compiler techniques employed by our interprocedural parallelizing research compiler, Panorama, to improve loop parallelization and the eeciency of memory references. We rst present an overview of the compiler and its associated memory architecture simulation environments. We then present an interprocedural array dataaow analysis, using guarded array regions, for automatic...
متن کاملInterprocedural Analysis for Parallelization
This paper presents an extensive empirical evaluation of an interprocedural parallelizing compiler, developed as part of the Stanford SUIF compiler system. The system incorporates a comprehensive and integrated collection of analyses, including privatization and reduction recognition for both array and scalar variables, and symbolic analysis of array subscripts. The interprocedural analysis fra...
متن کاملEecient Interprocedural Array Data--ow Analysis for Automatic Program Parallelization Accepted to Ieee Transactions on Software Engineering, the Special Issue on Architecture-independent Lan- Guages and Software Tools for Parallel Processing
Since sequential languages such as Fortran and C are more machine-independent than current parallel languages, it is highly desirable to develop powerful parallelization tools which can generate parallel codes, automatically or semi-automatically, targeting diierent parallel architectures. Array data-ow analysis is known to be crucial to the success of automatic parallelization. Such an analysi...
متن کاملInterprocedural Analysis to Support Static Scheduling of Parallel Loops and Data Allocation
We present an interprocedural program analysis to support static loop scheduling and data allocation with the objective of reducing remote memory references on CC-NUMA multiprocessors. Given a program which consists of parallel regions in the form of DOALL loops and sequential regions, we build an interprocedural control ow graph and annotate it with array reference information. We then constru...
متن کاملPolaris: Improving the Effectiveness of Parallelizing Compilers
It is the goal of the Polaris project to develop a new parallelizing compiler that will overcome limitations of current compilers. While current parallelizing compilers may succeed on small kernels, they often fail to extract any meaningful parallelism from large applications. After a study of application codes, it was concluded that by adding a few new techniques to current compilers, automati...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2013